home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
A.C.E. 3
/
ACE CD 3.iso
/
files
/
docs
/
ppaint6d.lha
/
PersonalPaint6.4Ch07.doc
< prev
next >
Wrap
Text File
|
1996-03-16
|
25KB
|
567 lines
"Personal Paint - 7. The Color Menu"
7. The Color Menu
7.1 Palette
7.1.1 Load Palette
7.1.2 Save Palette
7.1.3 Edit Palette
7.1.3.1 Picking a Color
7.1.3.2 RGB and HSB Color Models
7.1.3.3 Copy Color
7.1.3.4 Swap Colors
7.1.3.5 Sort Colors
7.1.3.6 Create Range
7.1.3.7 Undo
7.1.3.8 Hide Requester
7.1.4 Adjust Palette
7.1.5 Default
7.1.6 Restore
7.1.7 Copy Brush Palette
7.1.8 Copy Font Palette
7.1.9 Copy Screen Palette
7.2 Stencil
7.2.1 Load Stencil
7.2.2 Save Stencil
7.2.3 Edit Stencil
7.2.4 Update Stencil
7.2.5 Invert Stencil
7.2.6 Stencil On/Off
7.2.7 Free Stencil
7.3 Remap
7.4 Change Background to Foreground
7.5 Swap Background and Foreground
7.6 Merge
7.7 Less Colors
7.8 Statistics
7. The Color Menu
In a paint and image processing program like Personal Paint, color is
everything. Or, at least, nothing could be done without color. An
appropriate choice of colors can make a 64-color image look like a
photograph, give life to a faded picture, or reduce an image's memory
consumption to a fraction of the original, without significant loss of
detail.
The items in the color menu allow the user to access and modify single
colors, as well as apply global color changes. Color palettes can be
loaded, saved and exchanged between objects.
7.1 Palette
A palette is the entire set of colors associated to an image. It is
similar to a painter's palette, which contains many different colors that
can be used together. On the Amiga, the more colors are used, the more
resources are needed to process and store an image. Section 1.3.2 explains
the relationship between the image size, number of colors and memory. The
maximum number of colors in a digital palette is always a power of two (2,
4, 16, 64, 256 etc.)
Different pictures may require special colors, and at the same time may
not use some colors which appear very often in other pictures. Although
palettes having a wide range of different colors (256 colors, for example)
may come very close to fulfilling the needs of most pictures, there may
still be good reasons for using palettes with more limited numbers of
colors.
Using a palette of well selected colors for each picture not only saves
memory and reduces processing time, but also serves the cause of
consistency and style, especially if several pictures must share the same
"atmosphere".
7.1.1 Load Palette
Color palette information is stored with all pictures, regardless of
the storage format which is used (except for some two-color formats where
black and white is implied). A color palette can also be saved alone: the
file, instead of containing an image plus a palette, will contain only a
palette.
Load Palette will find and load the color palette from different types
of graphic files (GIF, IFF-ILBM, PCX, etc.), both with or without image.
The new palette will become the palette of the current environment. If the
current screen mode has more colors than the palette which is specified,
then only as many of the first colors as exist in the new palette will be
changed.
As with other functions which modify the palette, the original palette
can be restored invoking Restore Palette (section 7.1.6).
7.1.2 Save Palette
This command stores the current color palette into an IFF-ILBM file
(the BMHD, CMAP and CAMG IFF chunks are written). This is a standard and
space efficient way of storing color information, which can be loaded
again with Personal Paint, or by other software.
This command can also be used to overwrite the original "UIColors"
files which define Personal Paint's default menu colors in the
"PPaint_Prefs" disk. This will save about 5 kbytes of disk space (which
may be precious, on floppy disks), since the "UIColors" files are
originally stored as images containing a painted menu and requester to
ease editing. A copy of the original user interface color files should
however also be kept stored for possible future editing requirements.
7.1.3 Edit Palette
This requester allows the user to individually set each color in the
palette with the maximum precision allowed by the current screen mode.
There are also functions to copy, swap and sort colors and create new
ranges of colors.
Experimenting with colors, it may sometimes happen that the entire
screen becomes invisible, i.e. all items on the screen have the same
color. The <Help> key can be used to restore the default colors of
Personal Paint for the current screen mode.
Depending on the current color palette, Personal Paint may use
different colors to draw the user interface. The choice for these colors
is determined by legibility, contrast, and "3-D look" parameters. The
colors external to the requester are updated as soon as the mouse pointer
is moved outside the palette requester.
7.1.3.1 Picking a Color
The topmost row of colors shows the ordered sequence of palette colors.
An arrow-sign appears over the current color. Upon display of the
requester, this indicates the current foreground color. If the palette has
more colors than can be shown in a line, two scroll-gadgets are displayed
to the right of the color-bar. Clicking on one of these gadgets, or
keeping the gadgets clicked for a longer time, shows more colors in the
selected direction.
In "Extra Half Brite" video modes (64 colors), only the first 32 colors
of the palette can be defined freely. The remaining 32 are automatically
rendered using darker shades of the first 32. The palette requester
therefore only allows the user to edit the first 32 colors.
The current color can be selected by clicking on it with the mouse
(left button). It is also possible to select a color outside the
requester, either in the image or in the main palette. The <Left> and
<Right> cursor keys respectively move the current color to the previous
and next color in the palette.
A small box below the row of palette colors indicates the current color
both by displaying a rectangle painted with that color, and by showing
the position number of that color within the palette (for example, the
number can range from 0 to 15 in a 16-color map).
7.1.3.2 RGB and HSB Color Models
The current color can be modified using the sliders (knobs) which
appear below the row of colors. Two different color models (or coordinate
systems) can be used to specify a color: RGB (Red, Green, Blue) and HSB (
Hue, Saturation, Brightness). The two sets of knobs give a different way
of accessing the same color space. Either one of the two sets of knobs can
be used independently from the other. All possible colors can be obtained
by manipulating only one set of knobs.
In the RGB model, a color is described as a combination of three
primary colors: red, green and blue. The intensity of each color is
specified by a number in the range from 0 to the maximum, which may vary
depending on the screen mode and the version of the Amiga custom chips. In
most modes of Original and Enhanced Amiga sets, red, green and blue can
have 16 different intensities. This means that a color may be picked from
a set of 4096 different colors (16 to the 3rd power). Some ECS video
modes, the A2024 mode and other modes have less (e.g. four) intensity
levels, leading to fewer (e.g. 64) possible colors or gray levels. On
Advanced Graphics Architecture Amiga systems, most video modes can handle
256 intensity levels for each primary color. 256 to the power of three
gives 16 777 216 possible combinations (so that's where the famous "16
million colors" comes from). Section 1.14 explains how "UIColors" files
with different "granularities" are used for this reason.
Theoretically, if the three primary colors had equal intensity, the
perceived result would be a pure gray ranging from white to black.
In the HSB model (also called HSV, from Hue, Saturation and Value), a
color is described as a position on a color wheel, plus a brightness
value. This abstract color wheel is a sort of a circular rainbow. On the
perimeter of the circle, pure colors (red, green and blue) respectively
appear every 120 degrees (i.e. one third of a circle). The circle begins
and ends with red. Intermediate position values correspond to intermediate
colors. The colors are completely visible around the perimeter of the
circle, and slowly fade out towards the inside of the circle. The center
is completely gray (from white to black, depending on the brightness).
The Hue parameter specifies the angular position of a color on the
wheel: 0 (or 360) = red, 60 = yellow, 120 = green, 180 = cyan, 240 = blue,
300 = magenta, etc. Saturation indicates the distance of the color from
the center of the circle, in the range from 0 (gray) to 100 (pure color).
Brightness specifies the overall intensity of light (as opposed to the
specific color intensity, which is determined by its saturation). A
brightness of 0 is always black. 100 indicates the maximum possible
brightness for each particular hue/saturation combination.
7.1.3.3 Copy Color
To copy a color which already exists in one position in the palette to
another position, it is sufficient to select the first color, click on the
Copy Color gadget, and select the destination position.
7.1.3.4 Swap Colors
This is similar to Copy Color, except that the destination color is not
overwritten, but exchanged with the first color.
7.1.3.5 Sort Colors
These gadgets sort existing colors in positions from the current color
to the color which is selected after the Sort Colors gadget. Two types of
color sorting exist: from the lightest color in the range to the darkest
one, and from the darkest to the lightest.
7.1.3.6 Create Range
These two gadgets create new colors in the position between the current
color and the color which is selected after the gadget. The first (left)
gadget picks colors at intermediate Red, Green and Blue component
positions, while the second calculates the intervals in the Hue,
Saturation and Brightness system.
7.1.3.7 Undo
The Undo Last Change gadget undoes the last editing action in the
palette requester, while Restore All restores the initial settings.
7.1.3.8 Hide Requester
While this gadget is selected, the requester disappears (only as long
as the left mouse button is held down), making it possible to view those
parts of the image which may normally be hidden. If the right mouse button
is pressed while the left button is held down, the current color "cycles".
Both options are very useful for verifying the possible effects of color
changes without leaving the requester.
7.1.4 Adjust Palette
This requester allows the user to apply global color changes to the
current image. This is particular useful when processing for the first
time an image which has been scanned, or before printing an image (colors
generated by scanning and printing devices may differ from the colors
which are displayed, and may therefore require some sort of adjustment).
With the six sliders, it is possible to completely remove, double or
apply intermediate changes to particular color components. All colors in
the palette are affected by the changes. The Edit Palette requester
(section 7.1.3) must be used to individually modify selected colors. In
"Extra Half Brite" video modes (sections 7.1.3.1), the first 32 colors are
changed directly, whereas the second 32 always represent darker variations
of the first 32.
From top to bottom, the sliders respectively affect the color,
brightness, contrast, red, green and blue components. Adjusting the color
is equivalent to modifying the saturation value in the HSB model (section
7.1.3.2). The contrast knob reduces or increases the distance of the RGB
levels from the median values.
The Keep gadget resets all sliders to the central position after
applying the selected changes. This allows the user to apply changes which
more than double some values, or select a particular order in which to
apply the changes (by default, the adjustments modify all colors in order
indicated by the sliders).
Pressing the <Help> key clears all correction factors, bringing the
sliders back to 0%.
7.1.5 Default
This command changes all colors to Personal Paint's default palette.
This palette may either be the program's internal one, or a color palette
file referenced in one of the the "Startup" files (section 8.1.1 and
Appendix C).
By default, the associated shortcut key for this function is <Help>.
7.1.6 Restore
This command cancels the last changes made to the color palette,
restoring the colors previously used. It can be invoked twice to restore a
Restore operation.
7.1.7 Copy Brush Palette
This function copies the colors of the current custom brush (the one
whose number appears in the tool bar) to the current environment palette.
If the brush has fewer colors than the image, or vice versa, only the
first colors are copied.
7.1.8 Copy Font Palette
Color fonts (section 3.1.3.2) are generally created using a specific
color palette which makes them appear best. In these cases, using the font
with a wrong palette would be inappropriate. After loading the desired
font, this command can be used to apply its palette to the current
environments.
If the font's range of colors is too limited for the remaining artwork,
it is sufficient to increase the number of colors (section 4.5.3), leaving
the first colors (i.e. the font's colors) unchanged.
7.1.9 Copy Screen Palette
This function copies the colors of the selected screen to the current
environment, without grabbing the screen. The selection of the screen
works as in the Grab Screen function, described in section 4.4.
7.2 Stencil
A digital stencil (or color mask) works in a way which is similar to
the sheet of paper or metal with shapes which are cut to define where to
let the ink through. When a stencil is defined or loaded, a new bitmap is
created in addition to the existing image bitplanes. This concept is
somehow similar to the transparency plane, described in section 5.8.5. The
Stencil bitmap contains information about which parts of the image should
be protected from painting operations. Where there are ones, the
underlying image pixels are "protected", where there are zeros all paint
operations will work normally.
A stencil is usually defined in one of two ways: by selectively
protecting all areas having a certain color (color-masking), or by
painting a two-color image, color-masking it and then loading it as a
stencil. Even if the stencil was originally defined by color masking, it
is immediately transformed into a bitmap. This means that Personal Paint
does not protect certain pixels because they appear in a certain color,
but because there is a one in the corresponding stencil plane.
The similarity with the brush transparency plane, which was mentioned
before, may become a confusing equivalence at the file-format level. The
IFF format specifications use the same bitplane to provide both brush
transparency (unless the transparency can be algorithmically defined) and
image stencil information. When a picture with such an additional bitplane
is loaded as a brush, this bitplane would be interpreted as the
transparency plane, while loading the picture as an image would also load
the data as a stencil (and activate that stencil).
7.2.1 Load Stencil
This command loads the data stored in a stencil or picture file. In the
IFF-ILBM format, stencil data is always stored with an image if there is
an active stencil when the image is saved.
The size of the stencil should be equal to the image size. If the
stencil is larger, it is cut; if it is smaller, parts of the image (the
lower and right strips missing in the stencil file) will not be
protected.
7.2.2 Save Stencil
The stencil plane which was last used in the current environment is
saved in a standard IFF-ILBM stencil file. The IFF chunks which are
written are: BMHD, CAMG and BODY.
7.2.3 Edit Stencil
With this requester, it is possible to create a stencil bitmap by
associating the areas to be protected to particular colors. Subsequent
painting operations will not change pixels associated to colors which
appear checkmarked in the requester.
The stencil plane itself is not updated by painting commands, which
may, for example, create new areas in the colors originally protected by
the stencil. The Update Stencil command (section 7.2.4) should be used for
this purpose.
The protection status of a color can be set by clicking on a color box,
or picking a color from the image with the left or right mouse button (to
select or deselect that color). Checkmarks indicate the colors which are
protected.
The Clear gadget removes all checkmarks (such a stencil would be
equivalent to not having a stencil). Invert reverses the on/off status of
the colors. Show removes the requester while the left mouse button is held
down on the gadget, showing masked areas in black and other areas in
white.
When a custom brush is defined (section 3.1.6), only those pixels which
are not masked by the stencil are picked. It is also possible to create a
stencil by drawing it in two colors as an image, and then mask one of the
two colors with this requester.
Section 3.1.4 mentions a case in which a stencil can be used to protect
certain colored areas of the screen from image processing operations.
The two program environments have independent stencil planes.
7.2.4 Update Stencil
Normally, a stencil defined as a color mask is defined using the Edit
Stencil requester. Areas which have a particular color may be masked with
that requester, but are not extended when new colors are painted to the
image. This command forces an explicit update of the stencil bitplane
after new colors have been added.
7.2.5 Invert Stencil
This function inverts masked stencil areas with unmasked areas. If the
stencil was defined as a color mask, this command has a similar effect as
Invert in the Edit Stencil requester. However, if the stencil was
originally created by drawing it (and is therefore independent from any
particular image colors), only Invert Stencil can be used without
resetting the stencil.
7.2.6 Stencil On/Off
This command turns the stencil mask on or off. If the stencil is
switched on for the first time, the Edit Stencil requester appears. Even
if the stencil is switched off, its bitmap is preserved.
A symbol is displayed on the title bar to indicate that the stencil is
active.
7.2.7 Free Stencil
This function switches the stencil off and frees the stencil bitplane.
After this command is executed, a stencil must be redefined or loaded to
be used again.
7.3 Remap
Sometimes, the colors of an image may be changed even if this is not
desired. This may happen, for example, after applying font or brush colors
to the current image, or after manually changing some colors or simply
replacing the positions of some colors in the palette. After such an
operation, the image which is displayed may have "all colors wrong".
The Remap command uses the current colors to make the image look as
much as possible like it appeared with the previous set of colors (which
may still be used invoking the Restore Palette function). If the same
color exists in both the original and the new palette, Remap simply
updates all references to that color's position in the palette. If some of
the old colors do not exist in the new palette, Personal Paint may either
choose the closest colors, or apply Dithering, Floyd-Steinberg, or other
more sophisticated remapping techniques, as specified in the associated
program options (section 8.7).
7.4 Change Background to Foreground
This command applies the foreground color to all background-colored
pixels in the image. It is similar to the same command which can be
applied to brushes (section 5.8.3).
7.5 Swap Background and Foreground
Like the previous command, this function exchanges the colors of
background and foreground colored pixels.
7.6 Merge
It is often necessary to mix different images, or parts thereof, into a
single picture. For example, this may happen when a scanned photograph is
overlayed over a digital background, when pasting a brush originally
defined in a different environment, or if more than one reduced image is
to be shown on the same page. All these cases may have one common problem:
if the elements which must be joined have different color palettes, the
majority of pixels may appear to have the wrong colors.
With this function, it is possible to selectively merge the color
palettes of all brushes and images currently in use. As a result, one
single palette is created for all the selected items. The final palette
has the same number of colors as that of the current environment. The
colors are carefully chosen, but it may nevertheless happen that there are
not enough colors to correctly represent all individual pixels of all
images and brushes. For this reason, when all items are remapped to the
new palette, dithering, Floyd-Steinberg or other error diffusion
algorithms may be employed, as indicated in the relative program setting
(section 8.7). Section 8.6 describes different methods of color
reduction.
To preserve as many of the original colors as possible, it may be
appropriate to increase the number of colors of the current image (section
4.5.3). If all the items to be merged had completely different colors, the
resulting map should have as many colors as the sum of the individual
palettes. Fortunately, Personal Paint's color quantization, remapping and
reduction algorithms are so advanced that it is often hard to notice any
difference between the original items and the final image, even if heavy
color reduction has to be applied.
For example, if an image with a 16-color palette, of which only 8 are
used, is merged with an 8-color brush, no colors are lost. Both the image
and the final brush will have a 16-color palette.
After the selected items have been color-merged, they can easily be
pasted as necessary.
7.7 Less Colors
This function allows the user to reduce the number of different colors
which are used in the current image. The slider which is displayed in the
requester allows the user to specify the desired number of colors, in the
range from 2 to the amount currently in use. If two or less colors are
used, it would not make sense to further reduce the number of colors.
As the slider is moved, the picture is updated to show the changes,
while the Pixels Lost field informs the user on the relative (percent) and
absolute value of the amount of pixels which had to be "sacrificed". In
qualitative color reduction (section 8.6.1), colors for which there are
similar colors in the palette are eliminated first. If the quantitative
color reduction is selected (section 8.6.2), less used colors are the
first to be suppressed.
If one or more colors appear more than once in the palette, it is
possible to reduce the number of colors used by simple remapping, without
any loss of visual information.
Color reduction is a quite computation-intensive process. The higher
the number of destination colors, the more time it will take to reduce the
image. For example, on Amigas based on the 68000 CPU, it may take some
time every time the slider is moved, if the number of destination colors
is higher than 32.
In "Extra Half Brite" modes (section 7.1.3.1), Personal Paint always
maintains separate blocks of light and dark colors in the palette. A
HBrite palette has always an even number of colors, with the group of
darker colors starting 32 bytes from the beginning.
This command does not explicitly reduce the number of color entries in
the palette; it only reduces the amount of colors used in the image and
groups the colors which are used in the first palette positions. The
desired number of palette colors can be specified in the Screen and Image
Format requester, as explained in section 4.5.2.
7.8 Statistics
This requester displays statistics on the colors used in the current
image. For each color in the palette, the program counts how many pixels
exist in the image, and displays the result in the form of a histogram.
If there are more colors than can be represented in the requester, two
scroll arrows are displayed to scroll the histogram in the desired
direction. Additional information (palette color position, amount of
pixels used, surface occupied in percent) on a particular color can be
displayed by clicking on the associated color bar in the histogram. When
the requester is first displayed, this information refers to the current
foreground color.